IF exists(SELECT * FROM dbo.sysobjects WHERE name='WEB_maakDagroosterXMLLokaal' AND xtype='P') 
BEGIN
	DROP PROCEDURE WEB_maakDagroosterXMLLokaal
END
GO

CREATE procedure WEB_maakDagroosterXMLLokaal
(@lokalen char(400), @plusdag int)
as
set nocount on

declare @dagKort varchar(2)
declare @volguur int
declare @klassen varchar(1000)
declare @leraars varchar(1000)
declare @tekst varchar(1000)
declare @uur varchar(2)
declare @vak varchar(2)
declare @klas varchar(5)
declare @lokaal varchar(5)
declare @dagNr int
declare @leraar varchar(4)

create table #lerRooster
	(deLeraar varchar(4),
	hetVak varchar(2),
	deKlas varchar(20),
	deDag varchar(2),
	hetUur int,
	hetLokaal varchar(20))

-- Bepalen van de onderzochte dag(en)

declare @dag datetime
set @dag = dateadd(day,@plusdag,getdate())
set @dagNr = datepart(weekday,@dag) - 1
set @dagkort = case when @dagNr=1 then 'ma'
		when @dagNr=2 then 'di'
		when @dagNr=3 then 'wo'
		when @dagNr=4 then 'do'
		when @dagNr=5 then 'vr'
	       end	
------------------------------------------------------------------
--  Opstellen XML-tekst
------------------------------------------------------------------

create table #roosterXML(hoofdNr int, dagKort varchar(2), volgNr int, tekst varchar(1000))

-- Header
insert into #roosterXML(hoofdNr,dagKort,volgNr,tekst)
values (0,'aa',0,'<?xml version=''1.0'' encoding="ISO-8859-1" ?>')

insert into #roosterXML(hoofdNr,dagKort,volgNr,tekst)
values (0,'bb',0,'<?xml-stylesheet type="text/xsl" href="dagRooster.xsl" ?>' +
'<rooster>' +
'<titel>' + rtrim(@lokalen) + '</titel>' +
'<datum>' + convert(varchar(10),@dag,103) + '</datum>')

-- Dagen

insert into #roosterXML(hoofdNr,dagKort,volgNr,tekst)
values(1,'d',0,'<dag>' )

insert into #roosterXML(hoofdNr,dagKort,volgNr,tekst)
values(1,'d',9999,'</dag>')


-- Bepalen van de verschillende lokaalnamen uit de opgave.

declare @start int
declare @einde int
set @start=1
while (@start < len(@lokalen))
begin
  set @einde = charindex('-',@lokalen,@start)
  set @lokaal = rtrim(substring(@lokalen,@start,@einde-@start))
  set @start=@einde+ 1

  -- Vullen van een hulptabel met de gegevens van deze leraar

  delete from #lerRooster
  insert into #lerRooster
  execute RV_weekroosterLokaal @lokaal,@dag

  set @volgUur = 1
  while (@volgUur < 9)
      begin
	set @klassen = ''
        set @leraars = ''
	declare XMLCursor cursor for
	      select distinct hetVak,deKlas,hetUur,deLeraar from #lerRooster
	      where deDag = @dagKort 
		       and hetUur = @volgUur
	open XMLCursor
	  fetch next from XMLCursor into @vak,@klas,@uur,@leraar
	  if (@@fetch_status=0)
  	    begin
	      while (@@fetch_status = 0) 
	        begin
		  set @klassen = @klassen + ' ' + @klas
                  set @leraars = @leraars + ' ' + @leraar
              	  fetch next from XMLCursor into @vak,@klas,@uur,@leraar
		end    		
   	      set @tekst= '<u' + @uur + 
		  ' leraar = "' + @leraars +  
		  '" lokaal="' + @lokaal + 
		  '" klas="' + @klassen +
		  '" vak="' + @vak + '"/>'
	      insert into #roosterXML(hoofdNr,dagKort,volgNr,tekst)
	      values(1,'d',@volgUur,@tekst) 
	    end
	   set @volgUur = @volgUur + 1	
	   close XMLCursor
	   deallocate XMLCursor
	 end
     end

insert into #roosterXML(hoofdNr,dagKort,volgNr,tekst)
values (9999,'',0,'</rooster>')

select * from #roosterXML
order by hoofdNr,dagKort,volgNr